def outer(func):
    def inner():
        print('功能增强,before...')
        func()
        print('功能增强,after...')

    return inner


# 等同于 outer(hello)
@outer
def hello():
    print('hello.....')


hello()

# outer(hello)  是个函数,可不可以是个对象呢?
# python中7中可以callable的类型
# 对象()
# outer(hello)()


